.. _envoy_api_file_api/health_check.proto: Health check ============ .. _envoy_api_msg_HealthCheck: HealthCheck ----------- `[HealthCheck proto] `_ .. code-block:: json { "timeout": "{...}", "interval": "{...}", "interval_jitter": "{...}", "unhealthy_threshold": "{...}", "healthy_threshold": "{...}", "alt_port": "{...}", "reuse_connection": "{...}", "http_health_check": "{...}", "tcp_health_check": "{...}", "redis_health_check": "{...}" } .. _envoy_api_field_HealthCheck.timeout: timeout (`Duration `_) The time to wait for a health check response. If the timeout is reached the health check attempt will be considered a failure. .. _envoy_api_field_HealthCheck.interval: interval (`Duration `_) The interval between health checks. .. _envoy_api_field_HealthCheck.interval_jitter: interval_jitter (`Duration `_) An optional jitter amount in millseconds. If specified, during every internal Envoy will add 0 to interval_jitter to the wait time. .. _envoy_api_field_HealthCheck.unhealthy_threshold: unhealthy_threshold (`UInt32Value `_) The number of unhealthy health checks required before a host is marked unhealthy. Note that for http health checking if a host responds with 503 this threshold is ignored and the host is considered unhealthy immediately. .. _envoy_api_field_HealthCheck.healthy_threshold: healthy_threshold (`UInt32Value `_) The number of healthy health checks required before a host is marked healthy. Note that during startup, only a single successful health check is required to mark a host healthy. .. _envoy_api_field_HealthCheck.alt_port: alt_port (`UInt32Value `_) Non-serving port for health checking. .. _envoy_api_field_HealthCheck.reuse_connection: reuse_connection (`BoolValue `_) Reuse health check connection between health checks. Default is true. .. _envoy_api_field_HealthCheck.http_health_check: http_health_check (:ref:`HealthCheck.HttpHealthCheck `) Only one of :ref:`http_health_check `, :ref:`tcp_health_check `, :ref:`redis_health_check ` may be set. .. _envoy_api_field_HealthCheck.tcp_health_check: tcp_health_check (:ref:`HealthCheck.TcpHealthCheck `) Only one of :ref:`http_health_check `, :ref:`tcp_health_check `, :ref:`redis_health_check ` may be set. .. _envoy_api_field_HealthCheck.redis_health_check: redis_health_check (:ref:`HealthCheck.RedisHealthCheck `) Only one of :ref:`http_health_check `, :ref:`tcp_health_check `, :ref:`redis_health_check ` may be set. .. _envoy_api_msg_HealthCheck.Payload: HealthCheck.Payload ------------------- `[HealthCheck.Payload proto] `_ Describes the encoding of the payload bytes in the payload .. code-block:: json { "text": "...", "binary": "..." } .. _envoy_api_field_HealthCheck.Payload.text: text (`string `_) Only one of :ref:`text `, :ref:`binary ` may be set. .. _envoy_api_field_HealthCheck.Payload.binary: binary (`bytes `_) Only one of :ref:`text `, :ref:`binary ` may be set. .. _envoy_api_msg_HealthCheck.HttpHealthCheck: HealthCheck.HttpHealthCheck --------------------------- `[HealthCheck.HttpHealthCheck proto] `_ .. code-block:: json { "host": "...", "path": "...", "send": "{...}", "receive": "{...}", "service_name": "..." } .. _envoy_api_field_HealthCheck.HttpHealthCheck.host: host (`string `_) The value of the host header in the HTTPS health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used. .. _envoy_api_field_HealthCheck.HttpHealthCheck.path: path (`string `_) This parameter is required if the type is http. It species the HTTP path that will be requested during health checking. For example /healthcheck. .. _envoy_api_field_HealthCheck.HttpHealthCheck.send: send (:ref:`HealthCheck.Payload `) .. _envoy_api_field_HealthCheck.HttpHealthCheck.receive: receive (:ref:`HealthCheck.Payload `) .. _envoy_api_field_HealthCheck.HttpHealthCheck.service_name: service_name (`string `_) The Envoy HTTP health checker supports the service_name option. If this option is set, the health checker additionally compares the value of the x-envoy-upstream-healthchecked-cluster response header to service_name. If the values do not match, the health check does not pass. The upstream health check filter appends x-envoy-upstream-healthchecked-cluster to the response headers. The appended value is determined by the --service-cluster command line option. .. _envoy_api_msg_HealthCheck.TcpHealthCheck: HealthCheck.TcpHealthCheck -------------------------- `[HealthCheck.TcpHealthCheck proto] `_ .. code-block:: json { "send": "{...}", "receive": [] } .. _envoy_api_field_HealthCheck.TcpHealthCheck.send: send (:ref:`HealthCheck.Payload `) Empty payloads imply a connect-only health check. .. _envoy_api_field_HealthCheck.TcpHealthCheck.receive: receive (:ref:`HealthCheck.Payload `) When checking the response, “fuzzy” matching is performed such that each binary block must be found, and in the order specified, but not necessarly contiguous. .. _envoy_api_msg_HealthCheck.RedisHealthCheck: HealthCheck.RedisHealthCheck ---------------------------- `[HealthCheck.RedisHealthCheck proto] `_ .. code-block:: json { } .. _envoy_api_enum_HealthStatus: Enum HealthStatus ----------------- `[HealthStatus proto] `_ .. _envoy_api_enum_value_HealthStatus.UNKNOWN: UNKNOWN *(DEFAULT)* ⁣UNKNOWN should be treated by Envoy as HEALTHY. .. _envoy_api_enum_value_HealthStatus.HEALTHY: HEALTHY ⁣ .. _envoy_api_enum_value_HealthStatus.UNHEALTHY: UNHEALTHY ⁣ .. _envoy_api_enum_value_HealthStatus.DRAINING: DRAINING ⁣Connection draining in progress - https://aws.amazon.com/blogs/aws/elb-connection-draining-remove-instances-from-service-with-care/ and https://cloud.google.com/compute/docs/load-balancing/enabling-connection-draining. .. _envoy_api_enum_value_HealthStatus.TIMEOUT: TIMEOUT ⁣This value is used by HDS Remote server. From Envoy’s perspective TIMEOUT = UNHEALTHY in case EDS returns HealthStatus.